package com.cy.pj.health.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

import java.util.HashMap;
import java.util.Map;

@Controller
public class HealthController {
    @RequestMapping("/doHealth")
    public ModelAndView doHealth(){//此方法由DispatcherServlet对象通过反射调用
        ModelAndView mv = new ModelAndView();
        mv.setViewName("default");//viewname
        mv.addObject("username","chenzishu");
        mv.addObject("state","亚健康");
        return mv;
        //返回值会交给DispatcherServlet对象进行处理
        //DispatcherServlet对象会调用viewresolver对结果进行解析
        //基于viewname找到对应的view页面(prefix+viewname+suffix)
        //将model中的数据填充到view页面上
        //返回一个带有model数据的页面给DispatcherServlet
        //DispatcherServlet将带有model数据的页面响应到客户端
    }

    @RequestMapping("/doGetHealthJson")
    @ResponseBody//当使用此注解描述控制层方法时，用于告诉spring框架，
                 // 这个方法返回值可以按照特定格式（例如json）进行转换，
                 //将转换以后的结果写道response对象的响应体中
                //方法的返回值不在封装为ModelAndView对象，不会再交给解析器进行解析
                //而是直接基于response对象响应到客户端
    public Map<String ,Object> doGetHealthJson(){
        Map<String ,Object> map = new HashMap<>();
        map.put("username","tony");
        map.put("state",true);
        return map;
    }
}
